//导入依赖模块
import axios from 'axios'
import Vue from 'vue'

//全局IP
const IP = 'http://localhost:8088/springboot-bysj'
    // const IP = 'http://192.168.124.70:8088/springboot-bysj'

//发送请求的方法
export const sendBookInfo = () => {
    // Vue.axios.get(IP + '/book').then((res) => {
    //     console.log(res)
    // })
    return Vue.axios({
        method: 'get',
        url: IP + '/book',
        dataType: 'json',
        async: false,
    })
}

/***************************用户信息——begin********************************/
//http://localhost:8088/springboot-bysj/userinfo/GET/byaccount?account=18963134569&password=123456
/**
 * 根据用户名和密码获取用户的基本信息
 * @param {用户名} account
 * @param {密码} pass
 * @returns
 */
export function getUserinfoByAccount(account, pass) {
    return axios({
        url: IP + '/userinfo/GET/byaccount',
        method: 'GET',
        params: {
            account: account,
            password: pass,
        },
        dataType: 'json',
        async: false,
    })
}

/***************************用户信息——end********************************/

/*********************基本信息点----begin*****************************/
/**
 * @returns 超市店列表
 */
export function getSuperMarketList(lng, lat) {
    return axios({
        url: IP + '/servepoint/GET/supermarket',
        method: 'GET',
        params: {
            lng: lng,
            lat: lat,
        },
        dataType: 'json',
        async: false,
    })
}

/**
 * @returns 医疗点列表
 */
export function getHospitalList(lng, lat) {
    return axios({
        url: IP + '/servepoint/GET/hospital',
        method: 'GET',
        params: {
            lng: lng,
            lat: lat,
        },
        dataType: 'json',
        async: false,
    })
}

/**
 * @returns 休闲点列表
 */
export function getSceneryPointList(lng, lat) {
    return axios({
        url: IP + '/servepoint/GET/scenerypoint',
        method: 'GET',
        params: {
            lng: lng,
            lat: lat,
        },
        dataType: 'json',
        async: false,
    })
}
/*********************基本信息点----end*****************************/

/*********************获取天气信息——begin*****************************/
/**
 * 根据经纬度获取天气信息
 * @param {经度} _lon
 * @param {纬度} _lat
 * @returns
 */
export function getWeatherInfo(_lon, _lat) {
    return axios({
        url: IP + '/weather/GET/threeday',
        method: 'GET',
        params: {
            lon: _lon,
            lat: _lat,
        },
        dataType: 'json',
        async: false,
    })
}

/*********************获取天气信息——end*****************************/
/***********************获取用户基本信息————begin****************************/

/**
 * 通过用户名（手机号）获取报警次数
 * @param {用户名/手机号} username
 */
export function getWarnTimesByUserName(username) {
    return axios({
        url: IP + '/commoninfo/GET/warntimes',
        method: 'GET',
        params: {
            username: username,
        },
        dataType: 'json',
        async: false,
    })
}

/**
 *通过用户名（手机号）获取上门服务次数
 * @param {用户名/手机号} username
 */
export function getServiceTimesByUserName(username) {
    return axios({
        url: IP + '/commoninfo/GET/servicetimes',
        method: 'GET',
        params: {
            username: username,
        },
        dataType: 'json',
        async: false,
    })
}

/**
 * 通过用户名（手机号）获取报警统计数据
 * @param {用户名/手机号} username
 */
export function getWarnListByUserName(username) {
    return axios({
        url: IP + '/commoninfo/GET/warntimes/statistics',
        method: 'GET',
        params: {
            username: username,
        },
        dataType: 'json',
        async: false,
    })
}

/**
 * 通过用户名（手机号）获取上门服务统计数据
 * @param {用户名/手机号} username
 */
export function getServiceListByUserName(username) {
    return axios({
        url: IP + '/commoninfo/GET/servicetimes/statistics',
        method: 'GET',
        params: {
            username: username,
        },
        dataType: 'json',
        async: false,
    })
}

/**
 * 通过经纬度坐标进行反向地理编码-获取位置描述
 * @param {经度} lon
 * @param {纬度} lat
 * @returns
 */
export function geocoordBylonlat(lon, lat) {
    return axios({
        url: IP + '/geolocation/GET/bylonlat',
        method: 'GET',
        params: {
            lng: lon,
            lat: lat,
        },
        dataType: 'json',
        async: false,
    })
}

/**
 * 插入一条新的服务记录
 * @param {用户名} username
 * @param {服务内容} servicecontent
 * @param {服务地址} serviceaddress
 * @param {经度} lon
 * @param {纬度} lat
 * @returns
 */
export function insertServiceOrder(
    username,
    servicecontent,
    serviceaddress,
    lon,
    lat
) {
    return axios({
        url: IP + '/serviceorder/INSERT/order',
        method: 'GET',
        params: {
            username: username,
            servicecontent: servicecontent,
            serviceaddress: serviceaddress,
            lon: lon,
            lat: lat,
        },
    })
}

/**
 * 根据用户名称获取所有订单信息
 * @param {用户名} username
 * @returns
 */
export function selectAllServiceOrdersByUserName(username) {
    return axios({
        url: IP + '/serviceorder/GET/order',
        method: 'GET',
        params: {
            username: username,
        },
        dataType: 'json',
        async: false,
    })
}
/***********************获取用户基本信息————end****************************/

/************************WebSocket服务请求——————begin**************************/
/**
 * 根据报警人的信息创建信息的报警记录
 * @param {报警人身份证号} idnum
 * @param {所在经度} lon
 * @param {所在纬度} lat
 * @returns
 */
export function sendWebSocketMsg(idnum, lon, lat) {
    return axios({
        url: IP + '/createwarnrecord',
        method: 'GET',
        params: {
            idnum: idnum,
            lon: lon,
            lat: lat,
        },
        dataType: 'json',
        async: false,
    })
}

/***********************WebSocket服务请求——————end**************************/
/*******************当前位置3km范围内服务点请求---begin************************* */

/**
 *
 * @param {经度} lng
 * @param {*纬度 lat
 */
export function getServicePointsByBuffer(lng, lat) {
    return axios({
        url: IP + '/servepoint/GET/bydefaultbuffer',
        method: 'GET',
        params: {
            lng: lng,
            lat: lat,
        },
        dataType: 'json',
        async: false,
    })
}